Not applicable.
Not applicable.
Not applicable.
The field of the present invention includes methods for monitoring the performance of diverse computing systems. More particularly, embodiments of the present invention provide an automated and integrated system for simultaneously assessing the performance of both internally developed and off-the-shelf, third party middleware products operating under multiple platforms.
Computer networks transmit data between the individual components in the network along multiple communication channels. One type of a distributed object system which participates in computer networks is a distributed object system that is defined under the Common Object Request Broker Architecture (CORBA) specification produced by OMG. Distributed object systems may be in the context of an Object Request Broker (ORB) implemented under the CORBA specification from the OMG, Revision 2.0, Revision 2.1, Revision 2.2 and Revision 2.3, all of which are incorporated herein by reference in their entirety. For purposes of this application, programs and communications compliant with CORBA Revision 2.3, 2.2, and 2.1, by definition will be viewed as compliant with CORBA Revision 2.0 and will be referred to simply as CORBA-compliant. Unless otherwise specified, a generic reference to the CORBA Services specification will be presumed to be OMG""s CORBA Services Revision 2.0. Another method for communicating between computers in a network is Hypertext Transfer Protocol or HTTP. HTTP-compliant communications provide the current backbone communications standard for web-based (or URL based) access on the internet. Underlying both HTTP and in some circumstances CORBA is the TCP/IP protocol. This protocol is used in networks to exchange and verify information. In the preferred networks, communications in HTTP-compliant protocol and communications in CORBA-compliant protocol will each also be compliant with and run over a foundation TCP/IP protocol. The standards for HTTP protocol and TCP/IP protocol are growing and changing but are readily available and familiar to those of skill in the art.
Numerous tests, both manual and automated, can be conducted to ensure that individual middleware applications or components (such as naming services, messaging services, publish/subscribe services, authentication and authorization services and the like) are operating properly. With different applications, different elements provide key functionality. For example in some applications, multiple channels of communication are used for different functions within the application. For others, multiple objects (including daemons) interact with differing requests. For still others, multiple xe2x80x9cserversxe2x80x9d may be involved to provide differing elements of the service provided by the application. In general, each type of application and/or element within the application requires a different type of test to be performed. For example, a computer operator can xe2x80x9cpingxe2x80x9d an internet address to determine if it responds and to check the response time. An operator could also send a test signal from one device within the network to another to determine if an immediate error message is received or to measure the time for message delivery. A different type of test is typically needed for each type of system being tested, such as publish/subscribe systems, authentication systems, or naming services.
Such manual testing procedures are time consuming and labor intensive. Therefore, numerous automated, software-based products have been created that allow the unattended monitoring of network components. These products, however, typically provide only a limited amount of error checking and monitor only a narrow range of components. For example, an automated monitoring system might record that an error has occurred if an immediate error message is received but might be incapable of determining whether the time required for a transmission has exceeded a predetermined maximum acceptable duration. Also, such automated monitoring programs are typically capable of testing only one type of network component. For example, if a computer system contains both web-based components and client/server components, one suite of software is needed to monitor the web-based devices and another to monitor the client/server devices. Each suite presents its own interface to the user. No integrated interfaces are known to exist that would allow a user to simultaneously access both suites of monitoring programs. If a new component is added to the network, a new monitoring program and new user interface would be needed.
In addition to the above limitations, existing monitoring products are difficult to modify when changes are made to the devices or applications being monitored. Also, when an existing product detects an error, a message is typically sent to the user""s interface screen; no error logging or error notification services are provided. The applicant is aware of no product that simultaneously tests multiple aspects of the performance of multiple elements (i.e., communication channels, objects, servers), provides error logging and error notification capabilities, is easily expandable, and presents an integrated interface for applications across multiple platforms.
The preferred embodiment of the invention includes methods for implementing an integrated testing and monitoring system for testing and monitoring applications and computer program products for implementing such methods. The method of one embodiment starts with providing at least one integrated interface capable of controlling at least two monitoring programs. The monitoring programs each send test signals to respective applications and receive results responsive to the test signals. It is preferred that at least one of the monitoring programs sends test signals using HTTP-compliant communications while another of the monitoring programs sends test signals using TCP/IP-compliant communications, preferably CORBA-compliant communications. This embodiment also includes initiating the monitoring programs, setting property values for the monitoring programs, and displaying results from the monitoring programs, all through the integrated interface. The integrated interface can include an administrative graphical user interface, a command line tool, or a web browser, or may include a selection of these alternatives as multiple integrated interfaces.
In another form, an embodiment may provide a computer program product for implementing an integrated testing and monitoring system for testing and monitoring applications. The computer program product could include computer code that creates at least two integrated interfaces selected from the group consisting of an administrative graphical user interface, a command tool, and a web browser. The interfaces could be capable of controlling at least two monitoring programs which each send test signals to respective applications and receive results responsive to the test signals. It would be preferred that at least one of the monitoring programs sends test signals using HTTP-compliant communications, while a second of the monitoring programs sends test signals using TCP/IP-compliant communications, or more preferably CORBA-compliant communications. This embodiment would also include computer code that initiates the monitoring programs, computer code that sets property values for the monitoring programs, and computer code that displays results from the monitoring programs, all through at least one of the integrated interfaces. Finally this embodiment would preferably include a computer readable medium that stores the computer codes.